Radio communication systems are well known in the art. Further, such systems that include multiple sites--i.e., so-called multi-site systems--are also well established. In a multi-site radio communication system, a central controller is used to couple each of the communication sites, which in turn are controlled by local site controllers. Communication units--which may be, for example, portable radios, mobile units, or consoles--might be members of different communication groups that are free to roam about their local communication sites. Additionally, members of the same communication group might be permitted to roam among different sites. Unfortunately, the freedom provided by such a system may--under certain conditions, as next described--cause a problem during a request for communication access. The problem--commonly referred to as deadlock--occurs when communication between two or more communication units cannot be established, even though adequate communication resources exist in the system.
To define what is meant by a deadlock condition, consideration is given to the following example. Assuming there is only one communication resource--e.g., radio frequency (RF) channel--available at each of two sites, referred to hereafter as site A and site B. (This may be the result of all other communication resources being used at a particular time, or there may be only one allocated for a particular site.) Upon a service request from a mobile communication unit in site A, the local site controller for site A must reserve the sole available resource. The site controller then sends a request to the central controller to establish communication with an appropriate target communication unit(s) that is presently located in site B. To establish communication with a target unit in site B, the central controller must determine the location--usually using a paging process, or the like--of the target communication unit in site B.
Then, at substantially the same time, another site B communication unit might request service. Similar to the operation at the site A controller, the site B controller reserves the sole resource available for the simultaneously requesting site B unit. The site B controller then sends a request to the central controller to establish communication with an appropriate target unit(s) that is presently located in site A. As before, the central controller locates--e.g., via a page--the target unit in site A.
Since the service request at site A consumes the only remaining resource, but the communication cannot proceed without a resource at site B, the service call is placed in a "wait" state to obtain a resource at site B. Reciprocally, since the service request at site B consumes the only remaining resource at that site, but that communication cannot proceed without a resource at site A, this service call is also placed in a "wait" state until a resource at site A becomes available. Therefore, the two service requests are blocking each other, resulting in a condition referred to in the art as deadlock.
Another type of deadlock condition occurs when a service request from one communication unit requires multiple resources--e.g., multiple communication channels for voice and non-voice communication. For example, assume that a site has one voice channel available, when a service request is received that requires a voice channel and a non-voice (e.g., data) channel. This request is placed in a queue, after reserving the only available voice resource to the requesting unit, until a data channel becomes available. However, before the data channel becomes available, a request is received that requires only a voice channel. This request is also put in the queue--behind the first request--even though the communication could have been established using the previously available, but now reserved, sole voice channel. The foregoing scenario, like the multi-site example given above, creates a condition where a call can not proceed even though adequate resources exist in the system.
One of the more traditional methods of solving the deadlock problem is referred to in the art as deadlock prevention. This solution, however, is very inefficient for multi-site systems, since it requires a large number of messages to be exchanged between sites, thereby consuming valuable communication link bandwidth. Even for a single site system, prevention is still inefficient, since deadlock occurs only rarely, and performing the prevention for each service request consumes valuable CPU cycles. In other words, it would likely be less burdensome to allow a deadlock to occur, and resolve it at such time, than to prevent it for each service request.
Two other, more common, methods of resolving deadlocks are referred to as "busy override", and "ruthless preemption". The former technique--busy override--includes the step of notifying the requester that one or more of the multiple resources required is not available (e.g., a resource at site A is available, but a resource at site B is not). The requester can then either proceed without having communication established with some of the targets, or terminate the service request. The disadvantage of such a technique is the potential lack of communication with all of the target communication units. Further, the burden of having the requester re-issue a previously abandoned service request may result in the operator becoming frustrated.
The latter technique--ruthless preemption--simply terminates a lower priority call in progress, and reallocates the freed resource to the requester. The obvious disadvantage of this technique is the interruption of communication of lower priority. Further, a more complex data base is required to store call priorities for, each of the communication units and/or communication service types.
Accordingly, there exists a need for a radio communication system that enhances communication access between two or more communication units. In particular, a method of resolving a burdensome communication access problem, such as deadlock, without reducing the efficiency of the system would be an improvement over the prior art.